<?xml version="1.0"?>
<xs:schema xmlns:tns="http://BitFactory.Logging" elementFormDefault="qualified" targetNamespace="http://BitFactory.Logging" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:complexType name="BitFactory.Logging.Configuration.LoggingSectionCT">
    <xs:all>
      <xs:element minOccurs="0" name="compositeLoggers" type="tns:compositeLoggersCT">
        <xs:annotation>
          <xs:documentation>[OPTIONAL] BitFactory.Logging.Configuration.CompositeLoggerElementCollection </xs:documentation>
          <xs:appinfo>BitFactory.Logging.Configuration.CompositeLoggerElementCompositeLoggers</xs:appinfo>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="fileLoggers" type="tns:fileLoggersCT">
        <xs:annotation>
          <xs:documentation>[OPTIONAL] BitFactory.Logging.Configuration.FileLoggerElementCollection </xs:documentation>
          <xs:appinfo>BitFactory.Logging.Configuration.CompositeLoggerElementFileLoggers</xs:appinfo>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="rollingDateFileLoggers" type="tns:rollingDateFileLoggersCT">
        <xs:annotation>
          <xs:documentation>[OPTIONAL] BitFactory.Logging.Configuration.RollingDateFileLoggerElementCollection </xs:documentation>
          <xs:appinfo>BitFactory.Logging.Configuration.CompositeLoggerElementRollingDateFileLoggers</xs:appinfo>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="rollingSizeFileLoggers" type="tns:rollingSizeFileLoggersCT">
        <xs:annotation>
          <xs:documentation>[OPTIONAL] BitFactory.Logging.Configuration.RollingSizeFileLoggerElementCollection </xs:documentation>
          <xs:appinfo>BitFactory.Logging.Configuration.CompositeLoggerElementRollingSizeFileLoggers</xs:appinfo>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="emailLoggers" type="tns:emailLoggersCT">
        <xs:annotation>
          <xs:documentation>[OPTIONAL] BitFactory.Logging.Configuration.EmailLoggerElementCollection </xs:documentation>
          <xs:appinfo>BitFactory.Logging.Configuration.CompositeLoggerElementEmailLoggers</xs:appinfo>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="socketLoggers" type="tns:socketLoggersCT">
        <xs:annotation>
          <xs:documentation>[OPTIONAL] BitFactory.Logging.Configuration.SocketLoggerElementCollection </xs:documentation>
          <xs:appinfo>BitFactory.Logging.Configuration.CompositeLoggerElementSocketLoggers</xs:appinfo>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="eventLogLoggers" type="tns:eventLogLoggersCT">
        <xs:annotation>
          <xs:documentation>[OPTIONAL] BitFactory.Logging.Configuration.EventLogLoggerElementCollection </xs:documentation>
          <xs:appinfo>BitFactory.Logging.Configuration.CompositeLoggerElementEventLogLoggers</xs:appinfo>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="consoleLoggers" type="tns:consoleLoggersCT">
        <xs:annotation>
          <xs:documentation>[OPTIONAL] BitFactory.Logging.Configuration.ConsoleLoggerElementCollection </xs:documentation>
          <xs:appinfo>BitFactory.Logging.Configuration.CompositeLoggerElementConsoleLoggers</xs:appinfo>
        </xs:annotation>
      </xs:element>
    </xs:all>
    <xs:attribute name="application" use="optional">
      <xs:annotation>
        <xs:documentation>The name of the application. Leave it blank to use the name of the exe file automatically. [OPTIONAL] System.String </xs:documentation>
        <xs:appinfo>BitFactory.Logging.Configuration.LoggingSectionApplication</xs:appinfo>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction base="xs:string" />
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="formatString" use="optional">
      <xs:annotation>
        <xs:documentation>The format string of the logger. If blank, it will use the format string of the enclosing section (the CompositeLogger). [OPTIONAL] System.String (Default value: "[{application}] - [{severity}] - [{timestamp}] - {message}")</xs:documentation>
        <xs:appinfo>BitFactory.Logging.Configuration.LoggingSectionFormatString</xs:appinfo>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction base="xs:string" />
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="name" use="required">
      <xs:annotation>
        <xs:documentation>The name of the logger [REQUIRED] System.String </xs:documentation>
        <xs:appinfo>BitFactory.Logging.Configuration.LoggerElementName</xs:appinfo>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction base="xs:string" />
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="machine" use="optional">
      <xs:annotation>
        <xs:documentation>The machine names (separated by commas) for which this logger will be created. Leaving it empty will create it on all machines [OPTIONAL] System.String </xs:documentation>
        <xs:appinfo>BitFactory.Logging.Configuration.LoggerElementMachine</xs:appinfo>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction base="xs:string" />
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="isEnabled" use="optional">
      <xs:annotation>
        <xs:documentation>true if the logger is enabled; otherwise false [OPTIONAL] System.Boolean (Default value: "True")</xs:documentation>
        <xs:appinfo>BitFactory.Logging.Configuration.LoggerElementIsEnabled</xs:appinfo>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction base="xs:boolean" />
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="severity" use="optional">
      <xs:annotation>
        <xs:documentation>The SeverityThreshold of the logger [OPTIONAL] BitFactory.Logging.LogSeverity (Default value: "Debug")</xs:documentation>
        <xs:appinfo>BitFactory.Logging.Configuration.LoggerElementSeverity</xs:appinfo>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction base="xs:string">
          <xs:enumeration value="Debug" />
          <xs:enumeration value="Info" />
          <xs:enumeration value="Status" />
          <xs:enumeration value="Warning" />
          <xs:enumeration value="Error" />
          <xs:enumeration value="Critical" />
          <xs:enumeration value="Fatal" />
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="includeCategories" use="optional">
      <xs:annotation>
        <xs:documentation>The categories, separated by commas, to include when logging. Leave blank to include everything. [OPTIONAL] System.String </xs:documentation>
        <xs:appinfo>BitFactory.Logging.Configuration.LoggerElementIncludeCategories</xs:appinfo>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction base="xs:string" />
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="excludeCategories" use="optional">
      <xs:annotation>
        <xs:documentation>The categories, separated by commas, to exclude when logging. [OPTIONAL] System.String </xs:documentation>
        <xs:appinfo>BitFactory.Logging.Configuration.LoggerElementExcludeCategories</xs:appinfo>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction base="xs:string" />
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="isInsistent" use="optional">
      <xs:annotation>
        <xs:documentation>if true, the logger will be wrapped in an InsistentLogger [OPTIONAL] System.Boolean (Default value: "False")</xs:documentation>
        <xs:appinfo>BitFactory.Logging.Configuration.LoggerElementIsInsistent</xs:appinfo>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction base="xs:boolean" />
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="isAsynchronous" use="optional">
      <xs:annotation>
        <xs:documentation>if true, the logger will be wrapped in an AsyncLogger [OPTIONAL] System.Boolean (Default value: "False")</xs:documentation>
        <xs:appinfo>BitFactory.Logging.Configuration.LoggerElementIsAsynchronous</xs:appinfo>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction base="xs:boolean" />
      </xs:simpleType>
    </xs:attribute>
  </xs:complexType>
  <xs:element name="BitFactory.Logging" type="tns:BitFactory.Logging.Configuration.LoggingSectionCT" />
  <xs:complexType name="compositeLoggersCT">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="compositeLogger" type="tns:CompositeLoggerElementCT" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="CompositeLoggerElementCT">
    <xs:all>
      <xs:element minOccurs="0" name="compositeLoggers" type="tns:compositeLoggersCT">
        <xs:annotation>
          <xs:documentation>[OPTIONAL] BitFactory.Logging.Configuration.CompositeLoggerElementCollection </xs:documentation>
          <xs:appinfo>BitFactory.Logging.Configuration.CompositeLoggerElementCompositeLoggers</xs:appinfo>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="fileLoggers" type="tns:fileLoggersCT">
        <xs:annotation>
          <xs:documentation>[OPTIONAL] BitFactory.Logging.Configuration.FileLoggerElementCollection </xs:documentation>
          <xs:appinfo>BitFactory.Logging.Configuration.CompositeLoggerElementFileLoggers</xs:appinfo>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="rollingDateFileLoggers" type="tns:rollingDateFileLoggersCT">
        <xs:annotation>
          <xs:documentation>[OPTIONAL] BitFactory.Logging.Configuration.RollingDateFileLoggerElementCollection </xs:documentation>
          <xs:appinfo>BitFactory.Logging.Configuration.CompositeLoggerElementRollingDateFileLoggers</xs:appinfo>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="rollingSizeFileLoggers" type="tns:rollingSizeFileLoggersCT">
        <xs:annotation>
          <xs:documentation>[OPTIONAL] BitFactory.Logging.Configuration.RollingSizeFileLoggerElementCollection </xs:documentation>
          <xs:appinfo>BitFactory.Logging.Configuration.CompositeLoggerElementRollingSizeFileLoggers</xs:appinfo>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="emailLoggers" type="tns:emailLoggersCT">
        <xs:annotation>
          <xs:documentation>[OPTIONAL] BitFactory.Logging.Configuration.EmailLoggerElementCollection </xs:documentation>
          <xs:appinfo>BitFactory.Logging.Configuration.CompositeLoggerElementEmailLoggers</xs:appinfo>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="socketLoggers" type="tns:socketLoggersCT">
        <xs:annotation>
          <xs:documentation>[OPTIONAL] BitFactory.Logging.Configuration.SocketLoggerElementCollection </xs:documentation>
          <xs:appinfo>BitFactory.Logging.Configuration.CompositeLoggerElementSocketLoggers</xs:appinfo>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="eventLogLoggers" type="tns:eventLogLoggersCT">
        <xs:annotation>
          <xs:documentation>[OPTIONAL] BitFactory.Logging.Configuration.EventLogLoggerElementCollection </xs:documentation>
          <xs:appinfo>BitFactory.Logging.Configuration.CompositeLoggerElementEventLogLoggers</xs:appinfo>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="consoleLoggers" type="tns:consoleLoggersCT">
        <xs:annotation>
          <xs:documentation>[OPTIONAL] BitFactory.Logging.Configuration.ConsoleLoggerElementCollection </xs:documentation>
          <xs:appinfo>BitFactory.Logging.Configuration.CompositeLoggerElementConsoleLoggers</xs:appinfo>
        </xs:annotation>
      </xs:element>
    </xs:all>
    <xs:attribute name="name" use="required">
      <xs:annotation>
        <xs:documentation>The name of the logger [REQUIRED] System.String </xs:documentation>
        <xs:appinfo>BitFactory.Logging.Configuration.LoggerElementName</xs:appinfo>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction base="xs:string" />
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="machine" use="optional">
      <xs:annotation>
        <xs:documentation>The machine names (separated by commas) for which this logger will be created. Leaving it empty will create it on all machines [OPTIONAL] System.String </xs:documentation>
        <xs:appinfo>BitFactory.Logging.Configuration.LoggerElementMachine</xs:appinfo>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction base="xs:string" />
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="isEnabled" use="optional">
      <xs:annotation>
        <xs:documentation>true if the logger is enabled; otherwise false [OPTIONAL] System.Boolean (Default value: "True")</xs:documentation>
        <xs:appinfo>BitFactory.Logging.Configuration.LoggerElementIsEnabled</xs:appinfo>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction base="xs:boolean" />
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="severity" use="optional">
      <xs:annotation>
        <xs:documentation>The SeverityThreshold of the logger [OPTIONAL] BitFactory.Logging.LogSeverity (Default value: "Debug")</xs:documentation>
        <xs:appinfo>BitFactory.Logging.Configuration.LoggerElementSeverity</xs:appinfo>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction base="xs:string">
          <xs:enumeration value="Debug" />
          <xs:enumeration value="Info" />
          <xs:enumeration value="Status" />
          <xs:enumeration value="Warning" />
          <xs:enumeration value="Error" />
          <xs:enumeration value="Critical" />
          <xs:enumeration value="Fatal" />
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="includeCategories" use="optional">
      <xs:annotation>
        <xs:documentation>The categories, separated by commas, to include when logging. Leave blank to include everything. [OPTIONAL] System.String </xs:documentation>
        <xs:appinfo>BitFactory.Logging.Configuration.LoggerElementIncludeCategories</xs:appinfo>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction base="xs:string" />
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="excludeCategories" use="optional">
      <xs:annotation>
        <xs:documentation>The categories, separated by commas, to exclude when logging. [OPTIONAL] System.String </xs:documentation>
        <xs:appinfo>BitFactory.Logging.Configuration.LoggerElementExcludeCategories</xs:appinfo>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction base="xs:string" />
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="isInsistent" use="optional">
      <xs:annotation>
        <xs:documentation>if true, the logger will be wrapped in an InsistentLogger [OPTIONAL] System.Boolean (Default value: "False")</xs:documentation>
        <xs:appinfo>BitFactory.Logging.Configuration.LoggerElementIsInsistent</xs:appinfo>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction base="xs:boolean" />
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="isAsynchronous" use="optional">
      <xs:annotation>
        <xs:documentation>if true, the logger will be wrapped in an AsyncLogger [OPTIONAL] System.Boolean (Default value: "False")</xs:documentation>
        <xs:appinfo>BitFactory.Logging.Configuration.LoggerElementIsAsynchronous</xs:appinfo>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction base="xs:boolean" />
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="formatString" use="optional">
      <xs:annotation>
        <xs:documentation>The format string of the logger. If blank, it will use the format string of the enclosing section (the CompositeLogger). [OPTIONAL] System.String </xs:documentation>
        <xs:appinfo>BitFactory.Logging.Configuration.LoggerElementFormatString</xs:appinfo>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction base="xs:string" />
      </xs:simpleType>
    </xs:attribute>
  </xs:complexType>
  <xs:complexType name="fileLoggersCT">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="fileLogger" type="tns:FileLoggerElementCT" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="FileLoggerElementCT">
    <xs:sequence />
    <xs:attribute name="fileName" use="required">
      <xs:annotation>
        <xs:documentation>The path of the log file [REQUIRED] System.String </xs:documentation>
        <xs:appinfo>BitFactory.Logging.Configuration.FileLoggerElementFileName</xs:appinfo>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction base="xs:string" />
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="name" use="required">
      <xs:annotation>
        <xs:documentation>The name of the logger [REQUIRED] System.String </xs:documentation>
        <xs:appinfo>BitFactory.Logging.Configuration.LoggerElementName</xs:appinfo>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction base="xs:string" />
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="machine" use="optional">
      <xs:annotation>
        <xs:documentation>The machine names (separated by commas) for which this logger will be created. Leaving it empty will create it on all machines [OPTIONAL] System.String </xs:documentation>
        <xs:appinfo>BitFactory.Logging.Configuration.LoggerElementMachine</xs:appinfo>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction base="xs:string" />
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="isEnabled" use="optional">
      <xs:annotation>
        <xs:documentation>true if the logger is enabled; otherwise false [OPTIONAL] System.Boolean (Default value: "True")</xs:documentation>
        <xs:appinfo>BitFactory.Logging.Configuration.LoggerElementIsEnabled</xs:appinfo>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction base="xs:boolean" />
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="severity" use="optional">
      <xs:annotation>
        <xs:documentation>The SeverityThreshold of the logger [OPTIONAL] BitFactory.Logging.LogSeverity (Default value: "Debug")</xs:documentation>
        <xs:appinfo>BitFactory.Logging.Configuration.LoggerElementSeverity</xs:appinfo>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction base="xs:string">
          <xs:enumeration value="Debug" />
          <xs:enumeration value="Info" />
          <xs:enumeration value="Status" />
          <xs:enumeration value="Warning" />
          <xs:enumeration value="Error" />
          <xs:enumeration value="Critical" />
          <xs:enumeration value="Fatal" />
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="includeCategories" use="optional">
      <xs:annotation>
        <xs:documentation>The categories, separated by commas, to include when logging. Leave blank to include everything. [OPTIONAL] System.String </xs:documentation>
        <xs:appinfo>BitFactory.Logging.Configuration.LoggerElementIncludeCategories</xs:appinfo>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction base="xs:string" />
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="excludeCategories" use="optional">
      <xs:annotation>
        <xs:documentation>The categories, separated by commas, to exclude when logging. [OPTIONAL] System.String </xs:documentation>
        <xs:appinfo>BitFactory.Logging.Configuration.LoggerElementExcludeCategories</xs:appinfo>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction base="xs:string" />
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="isInsistent" use="optional">
      <xs:annotation>
        <xs:documentation>if true, the logger will be wrapped in an InsistentLogger [OPTIONAL] System.Boolean (Default value: "False")</xs:documentation>
        <xs:appinfo>BitFactory.Logging.Configuration.LoggerElementIsInsistent</xs:appinfo>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction base="xs:boolean" />
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="isAsynchronous" use="optional">
      <xs:annotation>
        <xs:documentation>if true, the logger will be wrapped in an AsyncLogger [OPTIONAL] System.Boolean (Default value: "False")</xs:documentation>
        <xs:appinfo>BitFactory.Logging.Configuration.LoggerElementIsAsynchronous</xs:appinfo>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction base="xs:boolean" />
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="formatString" use="optional">
      <xs:annotation>
        <xs:documentation>The format string of the logger. If blank, it will use the format string of the enclosing section (the CompositeLogger). [OPTIONAL] System.String </xs:documentation>
        <xs:appinfo>BitFactory.Logging.Configuration.LoggerElementFormatString</xs:appinfo>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction base="xs:string" />
      </xs:simpleType>
    </xs:attribute>
  </xs:complexType>
  <xs:complexType name="rollingDateFileLoggersCT">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="rollingDateFileLogger" type="tns:RollingDateFileLoggerElementCT" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="RollingDateFileLoggerElementCT">
    <xs:sequence />
    <xs:attribute name="formattedFileName" use="required">
      <xs:annotation>
        <xs:documentation>The full path and format of the log file. This can contain format items similar to the FormatString. It must contain a timestamp item. (example: "c:\logs\mylog_{timestamp:yyyyMMdd}.log") [REQUIRED] System.String </xs:documentation>
        <xs:appinfo>BitFactory.Logging.Configuration.RollingDateFileLoggerElementFormattedFileName</xs:appinfo>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction base="xs:string" />
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="name" use="required">
      <xs:annotation>
        <xs:documentation>The name of the logger [REQUIRED] System.String </xs:documentation>
        <xs:appinfo>BitFactory.Logging.Configuration.LoggerElementName</xs:appinfo>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction base="xs:string" />
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="machine" use="optional">
      <xs:annotation>
        <xs:documentation>The machine names (separated by commas) for which this logger will be created. Leaving it empty will create it on all machines [OPTIONAL] System.String </xs:documentation>
        <xs:appinfo>BitFactory.Logging.Configuration.LoggerElementMachine</xs:appinfo>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction base="xs:string" />
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="isEnabled" use="optional">
      <xs:annotation>
        <xs:documentation>true if the logger is enabled; otherwise false [OPTIONAL] System.Boolean (Default value: "True")</xs:documentation>
        <xs:appinfo>BitFactory.Logging.Configuration.LoggerElementIsEnabled</xs:appinfo>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction base="xs:boolean" />
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="severity" use="optional">
      <xs:annotation>
        <xs:documentation>The SeverityThreshold of the logger [OPTIONAL] BitFactory.Logging.LogSeverity (Default value: "Debug")</xs:documentation>
        <xs:appinfo>BitFactory.Logging.Configuration.LoggerElementSeverity</xs:appinfo>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction base="xs:string">
          <xs:enumeration value="Debug" />
          <xs:enumeration value="Info" />
          <xs:enumeration value="Status" />
          <xs:enumeration value="Warning" />
          <xs:enumeration value="Error" />
          <xs:enumeration value="Critical" />
          <xs:enumeration value="Fatal" />
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="includeCategories" use="optional">
      <xs:annotation>
        <xs:documentation>The categories, separated by commas, to include when logging. Leave blank to include everything. [OPTIONAL] System.String </xs:documentation>
        <xs:appinfo>BitFactory.Logging.Configuration.LoggerElementIncludeCategories</xs:appinfo>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction base="xs:string" />
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="excludeCategories" use="optional">
      <xs:annotation>
        <xs:documentation>The categories, separated by commas, to exclude when logging. [OPTIONAL] System.String </xs:documentation>
        <xs:appinfo>BitFactory.Logging.Configuration.LoggerElementExcludeCategories</xs:appinfo>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction base="xs:string" />
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="isInsistent" use="optional">
      <xs:annotation>
        <xs:documentation>if true, the logger will be wrapped in an InsistentLogger [OPTIONAL] System.Boolean (Default value: "False")</xs:documentation>
        <xs:appinfo>BitFactory.Logging.Configuration.LoggerElementIsInsistent</xs:appinfo>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction base="xs:boolean" />
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="isAsynchronous" use="optional">
      <xs:annotation>
        <xs:documentation>if true, the logger will be wrapped in an AsyncLogger [OPTIONAL] System.Boolean (Default value: "False")</xs:documentation>
        <xs:appinfo>BitFactory.Logging.Configuration.LoggerElementIsAsynchronous</xs:appinfo>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction base="xs:boolean" />
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="formatString" use="optional">
      <xs:annotation>
        <xs:documentation>The format string of the logger. If blank, it will use the format string of the enclosing section (the CompositeLogger). [OPTIONAL] System.String </xs:documentation>
        <xs:appinfo>BitFactory.Logging.Configuration.LoggerElementFormatString</xs:appinfo>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction base="xs:string" />
      </xs:simpleType>
    </xs:attribute>
  </xs:complexType>
  <xs:complexType name="rollingSizeFileLoggersCT">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="rollingSizeFileLogger" type="tns:RollingSizeFileLoggerElementCT" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="RollingSizeFileLoggerElementCT">
    <xs:sequence />
    <xs:attribute name="fileName" use="required">
      <xs:annotation>
        <xs:documentation>The path (and format string) of the name of the log file. This must include a format item {0} for the file. (e.g. c:\logfiles\myLog_{0}.log) [REQUIRED] System.String </xs:documentation>
        <xs:appinfo>BitFactory.Logging.Configuration.RollingSizeFileLoggerElementFileName</xs:appinfo>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction base="xs:string" />
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="maxSize" use="required">
      <xs:annotation>
        <xs:documentation>The maximum size (in bytes) of the log file before rolling over to a new file [REQUIRED] System.Int64 </xs:documentation>
        <xs:appinfo>BitFactory.Logging.Configuration.RollingSizeFileLoggerElementMaxSize</xs:appinfo>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction base="xs:long" />
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="name" use="required">
      <xs:annotation>
        <xs:documentation>The name of the logger [REQUIRED] System.String </xs:documentation>
        <xs:appinfo>BitFactory.Logging.Configuration.LoggerElementName</xs:appinfo>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction base="xs:string" />
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="machine" use="optional">
      <xs:annotation>
        <xs:documentation>The machine names (separated by commas) for which this logger will be created. Leaving it empty will create it on all machines [OPTIONAL] System.String </xs:documentation>
        <xs:appinfo>BitFactory.Logging.Configuration.LoggerElementMachine</xs:appinfo>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction base="xs:string" />
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="isEnabled" use="optional">
      <xs:annotation>
        <xs:documentation>true if the logger is enabled; otherwise false [OPTIONAL] System.Boolean (Default value: "True")</xs:documentation>
        <xs:appinfo>BitFactory.Logging.Configuration.LoggerElementIsEnabled</xs:appinfo>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction base="xs:boolean" />
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="severity" use="optional">
      <xs:annotation>
        <xs:documentation>The SeverityThreshold of the logger [OPTIONAL] BitFactory.Logging.LogSeverity (Default value: "Debug")</xs:documentation>
        <xs:appinfo>BitFactory.Logging.Configuration.LoggerElementSeverity</xs:appinfo>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction base="xs:string">
          <xs:enumeration value="Debug" />
          <xs:enumeration value="Info" />
          <xs:enumeration value="Status" />
          <xs:enumeration value="Warning" />
          <xs:enumeration value="Error" />
          <xs:enumeration value="Critical" />
          <xs:enumeration value="Fatal" />
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="includeCategories" use="optional">
      <xs:annotation>
        <xs:documentation>The categories, separated by commas, to include when logging. Leave blank to include everything. [OPTIONAL] System.String </xs:documentation>
        <xs:appinfo>BitFactory.Logging.Configuration.LoggerElementIncludeCategories</xs:appinfo>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction base="xs:string" />
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="excludeCategories" use="optional">
      <xs:annotation>
        <xs:documentation>The categories, separated by commas, to exclude when logging. [OPTIONAL] System.String </xs:documentation>
        <xs:appinfo>BitFactory.Logging.Configuration.LoggerElementExcludeCategories</xs:appinfo>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction base="xs:string" />
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="isInsistent" use="optional">
      <xs:annotation>
        <xs:documentation>if true, the logger will be wrapped in an InsistentLogger [OPTIONAL] System.Boolean (Default value: "False")</xs:documentation>
        <xs:appinfo>BitFactory.Logging.Configuration.LoggerElementIsInsistent</xs:appinfo>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction base="xs:boolean" />
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="isAsynchronous" use="optional">
      <xs:annotation>
        <xs:documentation>if true, the logger will be wrapped in an AsyncLogger [OPTIONAL] System.Boolean (Default value: "False")</xs:documentation>
        <xs:appinfo>BitFactory.Logging.Configuration.LoggerElementIsAsynchronous</xs:appinfo>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction base="xs:boolean" />
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="formatString" use="optional">
      <xs:annotation>
        <xs:documentation>The format string of the logger. If blank, it will use the format string of the enclosing section (the CompositeLogger). [OPTIONAL] System.String </xs:documentation>
        <xs:appinfo>BitFactory.Logging.Configuration.LoggerElementFormatString</xs:appinfo>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction base="xs:string" />
      </xs:simpleType>
    </xs:attribute>
  </xs:complexType>
  <xs:complexType name="emailLoggersCT">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="emailLogger" type="tns:EmailLoggerElementCT" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="EmailLoggerElementCT">
    <xs:sequence />
    <xs:attribute name="to" use="required">
      <xs:annotation>
        <xs:documentation>The email address to which log entries will be sent [REQUIRED] System.String </xs:documentation>
        <xs:appinfo>BitFactory.Logging.Configuration.EmailLoggerElementTo</xs:appinfo>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction base="xs:string" />
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="from" use="required">
      <xs:annotation>
        <xs:documentation>The email address from which log entries will be sent [REQUIRED] System.String </xs:documentation>
        <xs:appinfo>BitFactory.Logging.Configuration.EmailLoggerElementFrom</xs:appinfo>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction base="xs:string" />
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="smtpHost" use="optional">
      <xs:annotation>
        <xs:documentation>The SMTP host for sending emails [OPTIONAL] System.String </xs:documentation>
        <xs:appinfo>BitFactory.Logging.Configuration.EmailLoggerElementSmtpHost</xs:appinfo>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction base="xs:string" />
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="subject" use="optional">
      <xs:annotation>
        <xs:documentation>The subject of the email. Ths can be a format string in the same format as the FormatString. [OPTIONAL] System.String </xs:documentation>
        <xs:appinfo>BitFactory.Logging.Configuration.EmailLoggerElementSubject</xs:appinfo>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction base="xs:string" />
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="name" use="required">
      <xs:annotation>
        <xs:documentation>The name of the logger [REQUIRED] System.String </xs:documentation>
        <xs:appinfo>BitFactory.Logging.Configuration.LoggerElementName</xs:appinfo>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction base="xs:string" />
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="machine" use="optional">
      <xs:annotation>
        <xs:documentation>The machine names (separated by commas) for which this logger will be created. Leaving it empty will create it on all machines [OPTIONAL] System.String </xs:documentation>
        <xs:appinfo>BitFactory.Logging.Configuration.LoggerElementMachine</xs:appinfo>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction base="xs:string" />
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="isEnabled" use="optional">
      <xs:annotation>
        <xs:documentation>true if the logger is enabled; otherwise false [OPTIONAL] System.Boolean (Default value: "True")</xs:documentation>
        <xs:appinfo>BitFactory.Logging.Configuration.LoggerElementIsEnabled</xs:appinfo>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction base="xs:boolean" />
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="severity" use="optional">
      <xs:annotation>
        <xs:documentation>The SeverityThreshold of the logger [OPTIONAL] BitFactory.Logging.LogSeverity (Default value: "Debug")</xs:documentation>
        <xs:appinfo>BitFactory.Logging.Configuration.LoggerElementSeverity</xs:appinfo>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction base="xs:string">
          <xs:enumeration value="Debug" />
          <xs:enumeration value="Info" />
          <xs:enumeration value="Status" />
          <xs:enumeration value="Warning" />
          <xs:enumeration value="Error" />
          <xs:enumeration value="Critical" />
          <xs:enumeration value="Fatal" />
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="includeCategories" use="optional">
      <xs:annotation>
        <xs:documentation>The categories, separated by commas, to include when logging. Leave blank to include everything. [OPTIONAL] System.String </xs:documentation>
        <xs:appinfo>BitFactory.Logging.Configuration.LoggerElementIncludeCategories</xs:appinfo>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction base="xs:string" />
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="excludeCategories" use="optional">
      <xs:annotation>
        <xs:documentation>The categories, separated by commas, to exclude when logging. [OPTIONAL] System.String </xs:documentation>
        <xs:appinfo>BitFactory.Logging.Configuration.LoggerElementExcludeCategories</xs:appinfo>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction base="xs:string" />
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="isInsistent" use="optional">
      <xs:annotation>
        <xs:documentation>if true, the logger will be wrapped in an InsistentLogger [OPTIONAL] System.Boolean (Default value: "False")</xs:documentation>
        <xs:appinfo>BitFactory.Logging.Configuration.LoggerElementIsInsistent</xs:appinfo>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction base="xs:boolean" />
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="isAsynchronous" use="optional">
      <xs:annotation>
        <xs:documentation>if true, the logger will be wrapped in an AsyncLogger [OPTIONAL] System.Boolean (Default value: "False")</xs:documentation>
        <xs:appinfo>BitFactory.Logging.Configuration.LoggerElementIsAsynchronous</xs:appinfo>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction base="xs:boolean" />
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="formatString" use="optional">
      <xs:annotation>
        <xs:documentation>The format string of the logger. If blank, it will use the format string of the enclosing section (the CompositeLogger). [OPTIONAL] System.String </xs:documentation>
        <xs:appinfo>BitFactory.Logging.Configuration.LoggerElementFormatString</xs:appinfo>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction base="xs:string" />
      </xs:simpleType>
    </xs:attribute>
  </xs:complexType>
  <xs:complexType name="socketLoggersCT">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="socketLogger" type="tns:SocketLoggerElementCT" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="SocketLoggerElementCT">
    <xs:sequence />
    <xs:attribute name="host" use="required">
      <xs:annotation>
        <xs:documentation>The name (or IP) of the host with the open server socket [REQUIRED] System.String (Default value: "localhost")</xs:documentation>
        <xs:appinfo>BitFactory.Logging.Configuration.SocketLoggerElementHost</xs:appinfo>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction base="xs:string" />
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="port" use="required">
      <xs:annotation>
        <xs:documentation>The port number of the server socket [REQUIRED] System.Int32 (Default value: "0")</xs:documentation>
        <xs:appinfo>BitFactory.Logging.Configuration.SocketLoggerElementPort</xs:appinfo>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction base="xs:int" />
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="name" use="required">
      <xs:annotation>
        <xs:documentation>The name of the logger [REQUIRED] System.String </xs:documentation>
        <xs:appinfo>BitFactory.Logging.Configuration.LoggerElementName</xs:appinfo>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction base="xs:string" />
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="machine" use="optional">
      <xs:annotation>
        <xs:documentation>The machine names (separated by commas) for which this logger will be created. Leaving it empty will create it on all machines [OPTIONAL] System.String </xs:documentation>
        <xs:appinfo>BitFactory.Logging.Configuration.LoggerElementMachine</xs:appinfo>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction base="xs:string" />
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="isEnabled" use="optional">
      <xs:annotation>
        <xs:documentation>true if the logger is enabled; otherwise false [OPTIONAL] System.Boolean (Default value: "True")</xs:documentation>
        <xs:appinfo>BitFactory.Logging.Configuration.LoggerElementIsEnabled</xs:appinfo>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction base="xs:boolean" />
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="severity" use="optional">
      <xs:annotation>
        <xs:documentation>The SeverityThreshold of the logger [OPTIONAL] BitFactory.Logging.LogSeverity (Default value: "Debug")</xs:documentation>
        <xs:appinfo>BitFactory.Logging.Configuration.LoggerElementSeverity</xs:appinfo>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction base="xs:string">
          <xs:enumeration value="Debug" />
          <xs:enumeration value="Info" />
          <xs:enumeration value="Status" />
          <xs:enumeration value="Warning" />
          <xs:enumeration value="Error" />
          <xs:enumeration value="Critical" />
          <xs:enumeration value="Fatal" />
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="includeCategories" use="optional">
      <xs:annotation>
        <xs:documentation>The categories, separated by commas, to include when logging. Leave blank to include everything. [OPTIONAL] System.String </xs:documentation>
        <xs:appinfo>BitFactory.Logging.Configuration.LoggerElementIncludeCategories</xs:appinfo>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction base="xs:string" />
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="excludeCategories" use="optional">
      <xs:annotation>
        <xs:documentation>The categories, separated by commas, to exclude when logging. [OPTIONAL] System.String </xs:documentation>
        <xs:appinfo>BitFactory.Logging.Configuration.LoggerElementExcludeCategories</xs:appinfo>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction base="xs:string" />
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="isInsistent" use="optional">
      <xs:annotation>
        <xs:documentation>if true, the logger will be wrapped in an InsistentLogger [OPTIONAL] System.Boolean (Default value: "False")</xs:documentation>
        <xs:appinfo>BitFactory.Logging.Configuration.LoggerElementIsInsistent</xs:appinfo>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction base="xs:boolean" />
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="isAsynchronous" use="optional">
      <xs:annotation>
        <xs:documentation>if true, the logger will be wrapped in an AsyncLogger [OPTIONAL] System.Boolean (Default value: "False")</xs:documentation>
        <xs:appinfo>BitFactory.Logging.Configuration.LoggerElementIsAsynchronous</xs:appinfo>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction base="xs:boolean" />
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="formatString" use="optional">
      <xs:annotation>
        <xs:documentation>This property has no practical effect for socket loggers because all formatting is done at the destination. [OPTIONAL] System.String </xs:documentation>
        <xs:appinfo>BitFactory.Logging.Configuration.LoggerElementFormatString</xs:appinfo>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction base="xs:string" />
      </xs:simpleType>
    </xs:attribute>
  </xs:complexType>
  <xs:complexType name="eventLogLoggersCT">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="eventLogLogger" type="tns:EventLogLoggerElementCT" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="EventLogLoggerElementCT">
    <xs:sequence />
    <xs:attribute name="logName" use="optional">
      <xs:annotation>
        <xs:documentation>The name of the log. Leave blank to use the default Application log. [OPTIONAL] System.String </xs:documentation>
        <xs:appinfo>BitFactory.Logging.Configuration.EventLogLoggerElementLogName</xs:appinfo>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction base="xs:string" />
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="name" use="required">
      <xs:annotation>
        <xs:documentation>The name of the logger [REQUIRED] System.String </xs:documentation>
        <xs:appinfo>BitFactory.Logging.Configuration.LoggerElementName</xs:appinfo>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction base="xs:string" />
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="machine" use="optional">
      <xs:annotation>
        <xs:documentation>The machine names (separated by commas) for which this logger will be created. Leaving it empty will create it on all machines [OPTIONAL] System.String </xs:documentation>
        <xs:appinfo>BitFactory.Logging.Configuration.LoggerElementMachine</xs:appinfo>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction base="xs:string" />
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="isEnabled" use="optional">
      <xs:annotation>
        <xs:documentation>true if the logger is enabled; otherwise false [OPTIONAL] System.Boolean (Default value: "True")</xs:documentation>
        <xs:appinfo>BitFactory.Logging.Configuration.LoggerElementIsEnabled</xs:appinfo>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction base="xs:boolean" />
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="severity" use="optional">
      <xs:annotation>
        <xs:documentation>The SeverityThreshold of the logger [OPTIONAL] BitFactory.Logging.LogSeverity (Default value: "Debug")</xs:documentation>
        <xs:appinfo>BitFactory.Logging.Configuration.LoggerElementSeverity</xs:appinfo>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction base="xs:string">
          <xs:enumeration value="Debug" />
          <xs:enumeration value="Info" />
          <xs:enumeration value="Status" />
          <xs:enumeration value="Warning" />
          <xs:enumeration value="Error" />
          <xs:enumeration value="Critical" />
          <xs:enumeration value="Fatal" />
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="includeCategories" use="optional">
      <xs:annotation>
        <xs:documentation>The categories, separated by commas, to include when logging. Leave blank to include everything. [OPTIONAL] System.String </xs:documentation>
        <xs:appinfo>BitFactory.Logging.Configuration.LoggerElementIncludeCategories</xs:appinfo>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction base="xs:string" />
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="excludeCategories" use="optional">
      <xs:annotation>
        <xs:documentation>The categories, separated by commas, to exclude when logging. [OPTIONAL] System.String </xs:documentation>
        <xs:appinfo>BitFactory.Logging.Configuration.LoggerElementExcludeCategories</xs:appinfo>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction base="xs:string" />
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="isInsistent" use="optional">
      <xs:annotation>
        <xs:documentation>if true, the logger will be wrapped in an InsistentLogger [OPTIONAL] System.Boolean (Default value: "False")</xs:documentation>
        <xs:appinfo>BitFactory.Logging.Configuration.LoggerElementIsInsistent</xs:appinfo>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction base="xs:boolean" />
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="isAsynchronous" use="optional">
      <xs:annotation>
        <xs:documentation>if true, the logger will be wrapped in an AsyncLogger [OPTIONAL] System.Boolean (Default value: "False")</xs:documentation>
        <xs:appinfo>BitFactory.Logging.Configuration.LoggerElementIsAsynchronous</xs:appinfo>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction base="xs:boolean" />
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="formatString" use="optional">
      <xs:annotation>
        <xs:documentation>The format string of the logger. If blank, it will use the format string of the enclosing section (the CompositeLogger). [OPTIONAL] System.String </xs:documentation>
        <xs:appinfo>BitFactory.Logging.Configuration.LoggerElementFormatString</xs:appinfo>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction base="xs:string" />
      </xs:simpleType>
    </xs:attribute>
  </xs:complexType>
  <xs:complexType name="consoleLoggersCT">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="consoleLogger" type="tns:ConsoleLoggerElementCT" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="ConsoleLoggerElementCT">
    <xs:sequence />
    <xs:attribute name="name" use="required">
      <xs:annotation>
        <xs:documentation>The name of the logger [REQUIRED] System.String </xs:documentation>
        <xs:appinfo>BitFactory.Logging.Configuration.LoggerElementName</xs:appinfo>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction base="xs:string" />
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="machine" use="optional">
      <xs:annotation>
        <xs:documentation>The machine names (separated by commas) for which this logger will be created. Leaving it empty will create it on all machines [OPTIONAL] System.String </xs:documentation>
        <xs:appinfo>BitFactory.Logging.Configuration.LoggerElementMachine</xs:appinfo>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction base="xs:string" />
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="isEnabled" use="optional">
      <xs:annotation>
        <xs:documentation>true if the logger is enabled; otherwise false [OPTIONAL] System.Boolean (Default value: "True")</xs:documentation>
        <xs:appinfo>BitFactory.Logging.Configuration.LoggerElementIsEnabled</xs:appinfo>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction base="xs:boolean" />
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="severity" use="optional">
      <xs:annotation>
        <xs:documentation>The SeverityThreshold of the logger [OPTIONAL] BitFactory.Logging.LogSeverity (Default value: "Debug")</xs:documentation>
        <xs:appinfo>BitFactory.Logging.Configuration.LoggerElementSeverity</xs:appinfo>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction base="xs:string">
          <xs:enumeration value="Debug" />
          <xs:enumeration value="Info" />
          <xs:enumeration value="Status" />
          <xs:enumeration value="Warning" />
          <xs:enumeration value="Error" />
          <xs:enumeration value="Critical" />
          <xs:enumeration value="Fatal" />
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="includeCategories" use="optional">
      <xs:annotation>
        <xs:documentation>The categories, separated by commas, to include when logging. Leave blank to include everything. [OPTIONAL] System.String </xs:documentation>
        <xs:appinfo>BitFactory.Logging.Configuration.LoggerElementIncludeCategories</xs:appinfo>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction base="xs:string" />
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="excludeCategories" use="optional">
      <xs:annotation>
        <xs:documentation>The categories, separated by commas, to exclude when logging. [OPTIONAL] System.String </xs:documentation>
        <xs:appinfo>BitFactory.Logging.Configuration.LoggerElementExcludeCategories</xs:appinfo>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction base="xs:string" />
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="isInsistent" use="optional">
      <xs:annotation>
        <xs:documentation>if true, the logger will be wrapped in an InsistentLogger [OPTIONAL] System.Boolean (Default value: "False")</xs:documentation>
        <xs:appinfo>BitFactory.Logging.Configuration.LoggerElementIsInsistent</xs:appinfo>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction base="xs:boolean" />
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="isAsynchronous" use="optional">
      <xs:annotation>
        <xs:documentation>if true, the logger will be wrapped in an AsyncLogger [OPTIONAL] System.Boolean (Default value: "False")</xs:documentation>
        <xs:appinfo>BitFactory.Logging.Configuration.LoggerElementIsAsynchronous</xs:appinfo>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction base="xs:boolean" />
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="formatString" use="optional">
      <xs:annotation>
        <xs:documentation>The format string of the logger. If blank, it will use the format string of the enclosing section (the CompositeLogger). [OPTIONAL] System.String </xs:documentation>
        <xs:appinfo>BitFactory.Logging.Configuration.LoggerElementFormatString</xs:appinfo>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction base="xs:string" />
      </xs:simpleType>
    </xs:attribute>
  </xs:complexType>
</xs:schema>